﻿Ext.BLANK_IMAGE_URL = '../ext2/resources/images/default/s.gif';
Ext.lib.Ajax.defaultPostHeader += '; charset=UTF-8';
Ext.QuickTips.init();


 		var advise_tempReader =  new Ext.data.JsonReader({
			     totalProperty: "results", //results里面的数据是数据的条数
			     root:"items",
			     fields : [
			     	 {name: 'id'},
			         {name: 'title'},
			         {name: 'content'},
			         {name: 'adviseType'},
			         {name: 'typeId'},
			         {name: 'adviseDate'}
			         ]   
		});

 		var advise_groupingStore = new Ext.data.GroupingStore({	   
			   groupOnSort:false, autoLoad :false,
			   reader: advise_tempReader,
			   url : '../admin/advise/action/Com_getAdviseList.do'	
        }); 
        _params={start : 0,limit :limit};
		advise_groupingStore.on("beforeload", function(thiz, options) {
				 	       thiz.baseParams=_params;
		        	});
        
          var advise_toolbar =  new Ext.PagingToolbar({         	
	        store : advise_groupingStore,
			pageSize : limit,
			displayInfo : true,
			displayMsg : '第 {0} 条到 {1} 条，一共 {2} 条',
			emptyMsg : "没有记录"	,
	      	items:[
				  {
                    enableToggle: true,
                    text: '添加',
                    cls: 'x-btn-text-icon details',icon:"../ext2/images/add.gif",
                    toggleHandler: advise_add
                   },{ enableToggle: true,
                    text: '删除',    
                    cls: 'x-btn-text-icon details',icon:"../ext2/images/delete.gif",
                    toggleHandler: advise_all
                   }
				]
		});
		
		var advise_cb = new Ext.grid.CheckboxSelectionModel();
		
		//列模型

		var advise_colModel = new Ext.grid.ColumnModel( [                                             //配置表格列

			         new Ext.grid.RowNumberer({
					       header : '行号',                  
					       width : 45
				     }), 	
				 advise_cb,
				{header: "ID", width: 40, dataIndex: 'id', sortable: true},
				{header: "标题", width: 180, dataIndex: 'title', sortable: true},
				{header: "类型", width: 80, dataIndex: 'adviseType', sortable: true},
				{header: "内容", width: 280, dataIndex: 'content', sortable: true},
				{header: "时间", width: 120, dataIndex: 'adviseDate', sortable: true},
				{header: "功能操作", width: 80, dataIndex: 'id', renderer:adviseRend}
			]); 
			
			
		var advise_grid = Ext.extend(Ext.grid.GridPanel, {
			id : 'advise_grid',
			title : '通知管理',
			closable : true,
			frame : true,
			width : document.body.clientWidth - 190,
			height : document.body.clientHeight - 137,
			stripeRows : true,
			loadMask : true,                                      // 载入数据时遮盖住页面
			sm : advise_cb,                                       // 这里设置后，就可以实现全选功能
			tbar : advise_toolbar,
			store : advise_groupingStore,
			// 设置表格分组视图
			view : new Ext.grid.GroupingView({
				groupTextTpl : '{text}(共{[values.rs.length]}条)', // 定义分组行模板

				groupByText : '使用当前字段进行分组',                 // 表头菜单提示信息
				showGroupsText : '表格分组',                        // 表头菜单提示信息
				showGroupName : true,                             // 显示分组字段名称
				startCollapsed : false,                           // 展开分组
				hideGroupedColumn : false
				}),

			cm : advise_colModel

		});

		var advise_fileForm = new Ext.FormPanel({
			labelSeparator : ":",
			frame : true,
			border : false,
			baseCls : 'x-pain',
			labelAlign : 'right',
			labelWidth:60,
			items : [{
						xtype : 'textfield',name : 'title',	fieldLabel : '通知标题',	width : 300,allowBlank : false,blankText : '请输入通知标题!'
					}, 
					{xtype : 'textarea',name : 'content',fieldLabel : '通知内容',	width : 300,allowBlank : false,	blankText : '请输入通知内容!'
					},
					{	xtype : 'hidden',name : 'id',fieldLabel : 'id'},
					{	xtype : 'hidden',name : 'typeId',fieldLabel : 'typeId'},
					{	xtype : 'hidden',name : 'adviseType',fieldLabel : 'adviseType'}
					],
			buttons : [{
						text : '保存',
						handler : advise_submitForm

					}, {
						text : '关闭',
						handler : function() {
							advise_win.hide();
						}
					}]
		});
		
		//相关操作
		function adviseRend(value){		    
		    var strurl ="<a href='javascript:advise_update(\""+value+"\")'><img style='margin-left: 6px;'  src='../ext2/images/edit.png' title='修改通知'  /></a>" +
		    		"<a href='javascript:advise_delete(\""+value+"\")'><img style='margin-left: 6px;'  src='../ext2/images/delAll.gif' title='删除通知' /></a>";		   
		    return strurl;
		}
		
		
		//创建弹出窗口 
		var advise_win = new Ext.Window({
			layout:'fit',
		    width:410,
		    height:180,
		    closeAction:'hide',                                              //close为默认值点击后关闭，hide表点击后隐藏
			resizable : false,
			plain:true,
			shadow : true,
		    closable:true,                                                    //窗口右上角的小叉显示
		    bodyStyle:'padding:10 5 5 5',
		    animCollapse:true,
		    modal: true,		                                              //设置此窗口为模板窗口，后面的内容不能操作    
		    autoDestroy:false,
			items:[advise_fileForm]
		});
		
		//表单提交
		function advise_submitForm(){
			if(advise_fileForm.isAdd){	
			    advise_fileForm.form.submit({
						clientValidation:true,                                //进行客户端验证
						waitMsg : '正在提交数据请稍后...',                       //提示信息
						waitTitle : '提示',                                    //标题
						url : '../admin/advise/action/Com_adviseSave.do',     //请求的url地址
						method:'POST', 					
						success:function(form,action){                        //加载成功的处理函数
							advise_groupingStore.load();
							advise_win.hide();		
						},
						failure:function(form,action){                        //加载失败的处理函数
							Ext.Msg.alert('提示',action.result.msg);
						}
			   });
			   }else
			   {
			   		advise_fileForm.form.submit({
						clientValidation:true,                                //进行客户端验证
						waitMsg : '正在提交数据请稍后...',                       //提示信息
						waitTitle : '提示',                                   //标题
						url : '../admin/advise/action/Com_adviseUpdate.do',  //请求的url地址
						method:'POST',                                       //请求方式						                             
						success:function(form,action){                       //加载成功的处理函数
							advise_groupingStore.load();
							advise_win.hide();
						},
						failure:function(form,action){                 //加载失败的处理函数
							  Ext.Msg.alert('提示',action.result.msg);						
						}
					});
			   }
		}
		
		//添加通知
		function advise_add(){
			_params={typeId:type_id,start : 0,limit :limit};
			advise_fileForm.form.reset();
			advise_fileForm.form.findField('adviseType').setValue(arti_chanl_name);
			advise_fileForm.form.findField('typeId').setValue(type_id);
			fromReset(true,"添加通知");
		}
		
		//修改数据
		function advise_update(id){
			_params={typeId:type_id,start : 0,limit :limit};
			advise_fileForm.form.reset();
			getByIdView(id,'../admin/advise/action/Com_getAdviseById.do');
		}
		
		//数据回显
		function getByIdView(_id,_url){
			advise_fileForm.form.load({
				waitMsg : '正在加载数据请稍后...',                   //提示信息
				waitTitle : '提示',                               //标题
				url : _url,                                      //请求的url地址
				params : {id:_id},
				method:'POST',                                   //请求方式
				success:function(form,action){                   //加载成功的处理函数					
						fromReset(false,"修改通知");
				},
				failure:function(form,action){                   //加载失败的处理函数
					Ext.Msg.alert('提示','加载数据失败!');
				}
			});
		}
		
		//删除通知
		function advise_all(){
			var ids = getInfoIds("advise_grid");
			Ext.MessageBox.confirm("提示","确定要将这 "+ids.length+" 条数据全部删除吗？",function(btnId)
				{
					if(btnId == 'yes')
					{
						advise_delete(ids);
					}
				});	
		}
		
		//获取选中数据的id
		function getInfoIds(grid_name){
			var recs;
			recs = Ext.getCmp(grid_name).getSelectionModel().getSelections();
			var list = [];
			if(recs.length == 0){
				Ext.Msg.alert('提示','请选择要进行操作的数据！');
				return;
			}else{
				for(var i = 0 ; i < recs.length ; i++){
					var rec = recs[i];
					list.push(rec.get('id'));
				}
			}
			return list;
		}
		//单条数据删除
		function advise_delete(_id){
			var msgTip = Ext.MessageBox.show({
				title:'Tips',
				width : 250,
				msg:'正在删信息,请稍后......'
			});
			Ext.Ajax.request({
				url : '../admin/advise/action/Com_adviseDelete.do',
				params : {ids : _id},
				method : 'POST',
				success : function(response,options){
					msgTip.hide();
					var result = Ext.util.JSON.decode(response.responseText);
					if(result.success){
						//服务器端数据成功删除后，同步删除客户端列表中的数据
						advise_groupingStore.load();
					}else{
						Ext.Msg.alert('提示',result.msg);
					}
				},
				failure : function(response,options){
					msgTip.hide();
					Ext.Msg.alert('提示','数据删除失败!');
				}
			});		
		     
		}
		
		
		//表单重置数据
		function fromReset(isadd,winMsg){
			advise_fileForm.isAdd = isadd;
			advise_win.setTitle(winMsg);
			advise_win.show();	
		}
		
Ext.Window.prototype.beforeDestroy = function() {
	Ext.destroy(this.focusEl,   // 新增
			this.bwrap,         // 新增     
			this.resizer, this.dd, this.proxy, this.mask);
	Ext.Window.superclass.beforeDestroy.call(this);

	this.focusEl = null;        // 新增   
	this.bwrap = null;          // 新增   
}
